package com.example.springboot.document;


import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 *
 * @Description: 资源对象
 * @author TANGHUI
 * @date 2019年7月5日 下午2:59:34
 *
 */
@Data
@Document(indexName = "res_sys_info")
public class ResInfoDoc implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private String id;
	// 下载次数
	private Integer downtimes;
	// 资源浏览量
	private Integer viewtimes = 0;
	// 资源数据权限范围（存机构ID的JSON串，含岗位人员）
	/**
	 * data：可见性 down：下载 share：分享 [{"id":"1111111","auth":"data,down,share"},
	 * {"id":"22222222","auth":"data,down,share"},
	 * {"id":"33333333","auth":"data,down,share"}]
	 */
	private String resdatarange;
	// 资源名称
	private String resname;
	// 创作时间（YYYY-MM-DD）
	private Date marktime;
	// 上传时间
	private Date tptime;
	// 总大小
	private Integer allsize;
	// 摘要（文献摘要不得超过350汉字）
	private String abstractstr;
	// 所属分类（存路径ID，以逗号分隔）
	private String classify;
	// 所属分类名称
	private String classifyname;
	// 上传者
	@Field(type = FieldType.Keyword)
	private String upuserid;
	// 上传者姓名
	private String upusername;
	// 是否删除（做逻辑删除 -1：是 0：否 默认0）
	private Integer isdel = 0;
	// 所属组织机构(存最顶级机构ID)
	@Field(type = FieldType.Keyword)
	private String sorgid;
	// 所属组织机构名称
	private String sorgname;
	// 上传公司ID
	@Field(type = FieldType.Keyword)
	private String upcompanyid;
	// 上传公司名称
	private String upcompanyname;
	// 文档总个数（需要本资源下的文档总个数）
	private Integer filetotal;
	// 应用工程
	@Field(type = FieldType.Keyword)
	private String projectid;
	// 应用工程名称
	private String projectname;
	// 审核状态编码（nosubmit：未提交（默认）  bsEditing （编辑中（审核不通过）） bsExecuting：已提交（待审核） bsFinished：审核通过
	// bsEditing：审核不通过（待修改））
	private String state = "nosubmit";
	// 审核状态名称（nosubmit：未提交（默认） bsEditing （编辑中（审核不通过）） bsExecuting：已提交（待审核） bsFinished：审核通过
	// bsEditing：审核不通过（待修改））
	private String stateName = "未提交";
	//判断时使用，获取本表中的状态，主要用于判断是否需要审核，是否可以修改
	private String shstate = "";
	// 创作人（多个以逗号分隔存储）
	private String maker;

	//===ES======文件内容
	@Field(type = FieldType.Nested)
	private List<ResFileDoc> fileDocs;
	//===ES======文件清单

	//===ES======创建索引标识es
	private int isindex;

	private String path;

	private Boolean collected;

	private Integer status;

	private String statusName;

	private Long bizId;

	private String processInstanceId;

	private Long userId;

}
